Package bg.smoc.web.servlet.contestant

Source Code of bg.smoc.web.servlet.contestant.SubmitSaveAs

package bg.smoc.web.servlet.contestant;

import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import kr.or.ioi2002.RMIServer.User;

import bg.smoc.model.Contest;
import bg.smoc.model.manager.ContestManager;
import bg.smoc.web.utils.FileUtils;
import bg.smoc.web.utils.SessionUtil;

public class SubmitSaveAs extends HttpServlet {
    /**
     *
     */
    private static final long serialVersionUID = 7256621425178207471L;

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        SessionUtil sessionUtil = SessionUtil.getInstance();
        String userLogin = sessionUtil.getLoginManager().getActiveUserLogin(request);

        byte[] fileAsBytes = getInputStream(request, userLogin);
        InputStream inputStream = new ByteArrayInputStream(fileAsBytes);
        if (inputStream == null) {
            ContestManager contestManager = sessionUtil.getContestManager();
            Contest contest = contestManager.getContest(request);
            if (contest == null) {
                response.sendRedirect("");
                return;
            }
            User user = contestManager.getUser(contest.getId(), userLogin);
            user.getGeneralState().setOutputNow("File not found");
            request.getSession().setAttribute("tab", "General");
            response.sendRedirect("main");
            return;
        }
        int length = fileAsBytes.length;

        BufferedInputStream bufferInputStream = new BufferedInputStream(inputStream);

        response.setContentType("plain/text");
        response.setContentLength(length);

        ServletOutputStream servletOutputStream = response.getOutputStream();
        FileUtils.copyStreams(bufferInputStream, servletOutputStream);
        bufferInputStream.close();
    }

    public byte[] getInputStream(HttpServletRequest request, String userLogin) throws IOException {
        ContestManager contestManager = SessionUtil.getInstance().getContestManager();
        Contest contest = contestManager.getContest(request);

        String taskname = request.getParameter("taskname");
        if (taskname == null || contest == null)
            return null;

        byte[] bytearray = contestManager.getSourceCodeAsByteArray(contest, userLogin, taskname);
        if (bytearray == null)
            return null;

        return bytearray;
    }

}
TOP

Related Classes of bg.smoc.web.servlet.contestant.SubmitSaveAs

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.